package condominio.negocio;

import java.util.ArrayList;
import java.util.Collection;
import java.sql.Date;

import condominio.dao.CuotaDAO;
import condominio.excepcion.DAOExcepcion;
import condominio.modelo.Cuota;

public class CuotaNegocio {

	public int InsertaCuota(String Anio, String Mes, double ImporteTotal,
			Date FecVencimiento) throws DAOExcepcion {
		int i=0;
		Cuota cuo = new Cuota();
		cuo.setAnio(Anio);
		cuo.setMes(Mes);
		cuo.setImporteTotal(ImporteTotal);		
		cuo.setFechaVencimiento(FecVencimiento);		
		CuotaDAO dao = new CuotaDAO();
		try {
			i=dao.insertar(cuo);
		} catch (DAOExcepcion e) {
			throw e;
		}
		return i;
	}

	public Cuota ObtenerCuota(String Anio, String Mes) throws DAOExcepcion {
		CuotaDAO dao = new CuotaDAO();
		Cuota cuo = new Cuota();

		try {
			cuo = dao.obtener(Anio, Mes);
		} catch (DAOExcepcion e) {
			throw e;
		}

		return cuo;
	}

	public void EliminarCuota(String Anio, String Mes) throws DAOExcepcion {

		CuotaDAO dao = new CuotaDAO();

		try {
			dao.eliminar(Anio, Mes);
		} catch (DAOExcepcion e) {
			throw e;
		}
	}

	public void ActualizarCuota(String anio, String mes, double importeTotal,
			Date feVencimiento) throws DAOExcepcion {
		Cuota oCuota = new Cuota();
		oCuota.setAnio(anio);
		oCuota.setMes(mes);
		oCuota.setImporteTotal(importeTotal);

/*		SimpleDateFormat df = new SimpleDateFormat("yyy-MM-dd");
		Date fecha = null;
		try {
			fecha = (Date) df.parse(feVencimiento);
		} catch (ParseException e1) {
			throw new DAOExcepcion();
		}*/
		oCuota.setFechaVencimiento(feVencimiento);

		CuotaDAO oCuoDAO = new CuotaDAO();
		try {
			oCuoDAO.actualizar(oCuota);
		} catch (DAOExcepcion e) {
			throw e;
		}

	}

	public Collection<Cuota> ListarCuotas() throws DAOExcepcion {
		System.out.println("ListarCuotas: listar()");
		Collection<Cuota> c = new ArrayList<Cuota>();

		CuotaDAO dao = new CuotaDAO();

		try {
			c = dao.listar();
		} catch (DAOExcepcion e) {
			throw e;
		}

		return c;
	}

}
